#include "xpt2046.h"
#include "delay.h"
#include "intrins.h"

unsigned int read_xpt2046() 
{
	char i = 0;
	char cmd = 0xA5;//1 010 0101
	unsigned int value = 0; 
	CLK = 0;
	CS = 0;
	for(;i<8;++i)
	{
		if(cmd & 0x80) 
		{
			DIN = 1;
		} else {
			DIN = 0;
		}
		cmd <<= 1;
		_nop_();
						CLK = 1;
		_nop_();
						CLK = 0;
	}
	DIN = 0;
	_nop_();_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();_nop_();
	
	CLK = 1;
	_nop_();
	CLK = 0;
	_nop_();
	
	for(i=0;i<12;++i)
	{
		value <<= 1;
		_nop_();
		CLK = 1;
		_nop_();
		value |= DOUT;
		CLK = 0;
	}
	_nop_();
	CS = 1;
	return value;
}